$(document).ready(function() {
    const api = require("./modules/api.js");
    const location = require("./modules/location.js");

    $("#name").bind("input property", () => {
        name_validator();
    });
    $("#contactName").bind("input property", () => {
        contactName_validator();
    });
    $("#contactPhone").bind("input property", () => {
        contactPhone_validator();
    });
    $("#address").bind("input property", () => {
        address_validator();
    });

    getProvinces();
    // 监测省市区变化
    $("#province").change(function() {
        getCities();
        getAreas();
        location_validator();
    });
    $("#city").change(function() {
        getAreas();
        location_validator();

    });
    $("#area").change(function() {
        location_validator();
    });

    // 获取省份
    function getProvinces() {
        location.getProvinces().then(res => {
            let provinces = res.result;
            provinces.map(item => {
                $("#province").append(`<option value=${item}>${item}</option>`);
            });
        });
    };

    function getCities() {
        let province = $("#province").val();
        $("#city").empty();
        $("#city").append("<option value=''>市</option>");
        location.getCities({ province }).then(res => {
            let cities = res.result || [];
            cities.map(item => {
                $("#city").append(`<option value=${item}>${item}</option>`);
            });
        });
    };

    function getAreas() {
        let province = $("#province").val();
        let city = $("#city").val();

        $("#area").empty();
        $("#area").append("<option value=''>区</option>");
        location.getAreas({ province, city }).then(res => {
            let areas = res.result || [];
            areas.map(item => {
                $("#area").append(`<option value=${item}>${item}</option>`);
            });
        });
    }




    function name_validator() {
        let name = $("#name").val();
        if (!name) {
            $("#name").nextAll(".error-message").text("请输入企业名称！").fadeIn();
            return false;
        } else {
            $("#name").nextAll(".error-message").fadeOut();
            return true;
        };
    };

    function contactName_validator() {
        let contactName = $("#contactName").val();
        if (!contactName) {
            $("#contactName").nextAll(".error-message").text("请输入联系人!").fadeIn();
            return false;
        } else {
            $("#contactName").nextAll(".error-message").fadeOut();
            return true;
        };
    };

    function contactPhone_validator() {
        let contactPhone = $("#contactPhone").val();
        if (!contactPhone) {
            $("#contactPhone").nextAll(".error-message").text("请输入手机号!").fadeIn();
            return false;
        };
        if (!/(^1[3|4|5|7|8]\d{9}$)|(^09\d{8}$)/.test(contactPhone)) {
            $("#contactPhone").nextAll(".error-message").text("请输入合法手机哈！").fadeIn();
            return false;
        };
        $("#contactPhone").nextAll(".error-message").fadeOut();
        return true;
    };


    function location_validator() {
        let province = $("#province").val();
        let city = $("#city").val();
        let area = $("#area").val();

        if (!province) {
            console.log("ooo");
            $("#province").nextAll(".error-message").text("请选择所在省份!").fadeIn();
            return false;
        };

        if (!city) {
            console.log("city");
            $("#province").nextAll(".error-message").text("请选择所在城市!").fadeIn();
            return false;
        };

        if (!area) {
            console.log("area");
            $("#province").nextAll(".error-message").text("请选择地区").fadeIn();
            return false;
        };
        $("#province").nextAll(".error-message").fadeOut();
        return true;
    };

    function address_validator() {
        let address = $("#address").val();
        if (!address) {
            $("#address").nextAll(".error-message").text("请输入详细地址！").fadeIn();
            return false;
        };

        $("#address").nextAll(".error-message").fadeOut();
        return true;
    };


    function on_submit_validator() {
        return [
            name_validator(),
            contactName_validator(),
            contactPhone_validator(),
            address_validator(),
            location_validator(),
            address_validator()
        ].every(item => item);
    };

    $("#submit").click(function() {
        if (on_submit_validator()) {
            let data = {
                type: $("input[name='type']:checked").val(),
                name: $("#name").val(),
                province: $("#province").val(),
                city: $("#city").val(),
                area: $("#area").val(),
                address: $("#address").val(),
                contactName: $("#contactName").val(),
                contactPhone: $("#contactPhone").val()
            };
            console.log(data);
            api.shop_join(data).then(res => {
                console.log(res);
                if(res.code == "0"){
                    window.location.href = "/success";
                }else{
                    alert(res.errorMsg);
                };
            });
        };

    });
});